package com.example.viewdemo

import android.annotation.SuppressLint
import android.content.Context
import android.graphics.Color
import android.util.AttributeSet
import android.view.MotionEvent
import android.view.View

class MyView2 @JvmOverloads constructor(
    context: Context,
    attrs: AttributeSet? = null,
    defStyleAttr: Int = 0
) : View(context, attrs, defStyleAttr) {
    private var lastX = 0
    private var lastY = 0

    init {
        // 设置背景颜色为绿色
        setBackgroundColor(Color.GREEN)
    }

    @SuppressLint("ClickableViewAccessibility")
    override fun onTouchEvent(event: MotionEvent): Boolean {
        // 获取当前触摸点的坐标
        val x = event.x.toInt()
        val y = event.y.toInt()

        when (event.action) {
            MotionEvent.ACTION_DOWN -> {
                // 记录触摸点坐标
                lastX = x
                lastY = y
            }
            MotionEvent.ACTION_MOVE -> {
                // 计算偏移量
                val offsetX = x - lastX
                val offsetY = y - lastY

                // 调用offsetLeftAndRight和offsetTopAndBottom方法来重新放置视图的位置
                offsetLeftAndRight(offsetX)
                offsetTopAndBottom(offsetY)
            }
            MotionEvent.ACTION_UP -> {
            }
            else -> {
            }
        }

        return true // 消费事件，不传递给父容器
    }
}